события:

macro - вызов "оболочки" команд
message - обычное сообщение
/me - сообщение начинающееся с "/me"
subject - смена темы конференции
join - вход участника в конференцию
version - результат проверки версии вошедшего участника
leave - выход юзера
ban - бан юзера
kick - кик юзера
nick - смена ника юзера
role - смена роли юзера
status - смена статуса юзера

условия:

null - нулевое условие (всегда истинно)
is - проверка истиности утверждения {А равно Б}
is_not - наоборот
starts - {А начинается с Б}
not_starts - наоборот
ends - {А заканчивается на Б}
not_ends - наоборот
cont - {А включает в себя Б}
not_cont - наоборот
in - {Б включает в себя А}
not_in - наоборот
len_more - {длина А > Б}
len_less - наоборот
re - проверка совпадения A с регулярным выражением

* А - одна из переменных, перечисленных ниже
* Б - текст условия

переменные:

message:
	body - текст сообщения,
	jid - JID юзера, который отправил сообщение,
	nick - ник юзера, который отправил сообщение,
	role - роль юзера, который отправил сообщение (выглядит, как "admin/moderator"),
	stype - тип сообщения ("chat" - приват, "groupchat" - сообщение в общий чат)
/me: body, jid, nick, role
subject: body, nick
join: caps, caps_ver, jid, nick, role,
	show - тип статуса (chat - готов поболтать, away - отошел, xa - не беспокоить, dnd - недоступен),
	status - текст статуса
version: jid, nick, role,
	name - название клиента пользователя,
	version - версия клиента пользователя,
	os - операционная система пользователя
leave, ban, kick: jid, nick, role,
	reason - причина выхода/бана/кика
nick: jid, role,
	nick - новый ник,
	old_nick - старый ник
role: jid, nick, role
status: jid, nick, role, show, status

о тексте условий:

текст условия должен быть заключен в html комментарий: <!--здесь текст-->
так же для более гибкой проверки соответствия переменных условиям, существует инструмент под названием "флаги".
если флаги не нужны, то нужно указать "null". можно использовать один или несколько флагов.
если флагов несколько, то их необходимо указывать с разделительным символом "&", таким образом: флаг0&флаг1&флаг2

флаги:
	strip - удаляет пробелы с концов переменной,
	lower - переводим переменную в нижний регистр,
	layout - уравнивание похожих символов кириллицы и латиницы

виды реакции:

command: первым параметром должна быть одна из команд бота
set: outcast, none, member, admin, owner, kick, visitor, participant, moder
message: chat (сообщение в групповой чат), private (сообщение в приват)

о параметрах алиасов:

в параметры алиаса можно вставлять соответствующие переменные. осуществляется это за счет данного синтаксиса - "%(имя_переменной)s".
так же можно вставлять рандомные значения. синтаксис:
	$rand(1, 9) - случайное число из заданного диапазона, где 1 - начало, а 9 - конец
	$rand([вариант один||вариант два]) - выбор случайного варианта из списка (варианты необходимо разделять с помощью "||")
	$rand_user - вставка ника случайного пользователя конференции (каждое использование этого параметра будет вставлять новый ник)

всё это можно комбинировать, например: шла Саша по шоссе и купила $rand([$rand(11, 21) сушек||козу для %(nick)s||$rand_user в качеcтве раба||Маккларен])

переменные для вставки в текст макро: nick, jid, role, stype,
	aff - аффиляция пользователя,
	arg0 - первый аргумент параметров, переданных пользователем при вызове макро (если аргумент не будет передан, то его заменит JID чата),
	arg1 - второй (если аргумент не будет передан, то его заменит значение переменной "stype"),
	arg2 - третий (если аргумент не будет передан, то его заменит аффиляция юзера),
	arg3 - четвертый (если аргумент не будет передан, то его заменит роль юзера),
	args - аргументы целиком

* Так же везде можно вставлять переменную "chat"
* Переменную "stype" нельзя вставлять в текст алиаса для события "message"